#ifndef _CONSTRAINT_SATISFACTION_EXCEPTION_H_
#define _CONSTRAINT_SATISFACTION_EXCEPTION_H_

////////////////////////////////////////////////////////////////////////////////
// Includes
////////////////////////////////////////////////////////////////////////////////

#include "Exception.hpp"

////////////////////////////////////////////////////////////////////////////////
// Namespaces
////////////////////////////////////////////////////////////////////////////////

namespace Exceptions {

////////////////////////////////////////////////////////////////////////////////
// Implementation
////////////////////////////////////////////////////////////////////////////////

/**
 *  Constraint satisfaction exception class.
 *	This class creates an exception which should be thrown when a constraint
 *	cannot be solved.
 */
 
class ConstraintSatisfactionException : public Exception {

	public:

		/**
		 *  Exception creation.
		 *	@param A specific message.
		 */
		ConstraintSatisfactionException(const std::string comment = "")
		: Exception(comment,"Constraint satisfaction exception") {}

};

////////////////////////////////////////////////////////////////////////////////
// Closing Namespaces
////////////////////////////////////////////////////////////////////////////////

}

////////////////////////////////////////////////////////////////////////////////

#endif
